package cn.chia.service.impl;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;

import cn.chia.back.dao.IActivityTypeDAO;
import cn.chia.front.dao.IItemDAO;
import cn.chia.front.dao.IIteminfoviewDAO;
import cn.chia.pojo.Iteminfoview;
import cn.chia.pojo.TblActivityType;
import cn.chia.pojo.TblItems;
import cn.chia.service.IItemService;

@Service
public class ItemServiceImpl implements IItemService {
	
	private IItemDAO itemDAOImpl;
	private IActivityTypeDAO activityTypeDAOImpl;
	private IIteminfoviewDAO iteminfoviewDAOImpl;
	
	/**
	 * @author xyh
	 * @param pageNo 当前页数
	 * @param pageSize 每页的记录数量
	 * @param keyword 用户提供的关键字，用泪模糊查询。
	 * @param column 根据column的不同，用不同的列去查询
	 * @return conllection of all items （返回全部商品的list集合） 
	 * @Todo 将dao层的getAllCount()方法和findAll()方法的返回值分别封装成map集合并将map集合返回。
	 * @throws Exception
	 */
	public Map<?,?> findAll(int pageNo, int pageSize, String keyword,String column) throws Exception{
		
		Map<String, Object> map = new HashMap<String, Object>();
		map.put("allItem", itemDAOImpl.findAll(pageNo,pageSize, keyword, column));
		map.put("allCount", itemDAOImpl.getAllCount(keyword, column));
		return map;
	}

	/**
	 * @author xyh
	 * @param id 商品的种类id
	 * @Todo 按照种类id来查询商品的某一条记录。
	 * @return 商品的某一条记录。
	 * @throws Exception
	 */
	public List<Iteminfoview> findByCatagorgy(String name) throws Exception{
		return iteminfoviewDAOImpl.findByProperty("cataName", name);
	} ;
	
	
	/**
	 * @author Administrator
	 * @Todo 查询活动的全部种类
	 * @return 活动种类的list集合
	 * @throws Exception
	 */
	public List<TblActivityType> findActivityType()throws Exception{
		return activityTypeDAOImpl.findActivityType();
	}

	/**
	 * @author Administrator
	 * @param ActivityTypeId 活动对应种类的id
	 * @throws Exception
	 */
	public List<TblItems> findByActivity(Integer activityTypeId)throws Exception{
		return itemDAOImpl.findByActivity(activityTypeId);
	}
	
	//根据ID找商品
	public TblItems findById(String id) throws Exception {
		// TODO Auto-generated method stub
		return itemDAOImpl.findById(id);
	}
	

	//根据商品名称来查找商品
	public List<Iteminfoview> findByName(String Name) throws Exception {
		return iteminfoviewDAOImpl.findByItemName("itemName", Name);
		
		//return itemDAOImpl.findByName(itemName);
	}

	
	//按照活动种类名称查询商品
	public List<Iteminfoview> findByActivityType(String typename)throws Exception{
		return iteminfoviewDAOImpl.findByProperty("typeName", typename);
	}
	
	
	//查询全部商品
	public List<Iteminfoview> findAll()throws Exception{
		return iteminfoviewDAOImpl.findAll();
	}
	
	public List<Iteminfoview> findByFirstName(Integer catagorgyId) throws Exception {
		String cname = itemDAOImpl.findCatagorgyName(catagorgyId);
		List<Iteminfoview> list = iteminfoviewDAOImpl.findByProperty("cataName", cname);
		return list;
	}

	
	
	@Resource(name="itemDAOImpl")
	public void setItemDAOImpl(IItemDAO itemDAOImpl) {
		this.itemDAOImpl = itemDAOImpl;
	}
	@Resource(name="activityTypeDAOImpl")
	public void setActivityTypeDAOImpl(IActivityTypeDAO activityTypeDAOImpl) {
		this.activityTypeDAOImpl = activityTypeDAOImpl;
	}
	@Resource(name="iteminfoviewDAO")
	public void setIteminfoviewDAO(IIteminfoviewDAO iteminfoviewDAOImpl) {
		this.iteminfoviewDAOImpl = iteminfoviewDAOImpl;
	}
}
